package com.github.luoshu.open.shiro.redis;

import java.util.Map;
import java.util.Set;

/**
 * @author inme
 */
public interface RedisManager {

    void putHash(String key , Map<Object , Object> data);

    void putHash(String key , Object hashKey , Object hashValue);

    <T> T getHash(String key, Object hashKey);

    void deleteKey(String key);

    /**
     * 获取所有的 hash key列表
     * @param key
     * @return
     */
    Set<Object> getHashKeys(String key);

    /**
     * 设置过期时间
     * @param key
     * @param expireMs
     */
    void expire(String key, long expireMs);

    /**
     * 删除掉 hash 中的 key
     * @param key
     * @param hashKey
     */
    void deleteHash(String key, Object hashKey);

    /**
     * redis 中是否存在 key
     * @param key
     * @return
     */
    boolean hasKey(String key);
}
